package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "golang 你好"
	fmt.Println(len(str))
	for i := 0; i < len(str); i++ {
		fmt.Printf("%c ", str[i]) // 会出现中文乱码
	}
	fmt.Println()
	for i, value := range str {
		fmt.Printf("%v:%c,", i, value) // 利用range函数，避免中文乱码
	}
	fmt.Println()
	r := []rune(str)
	for i := 0; i < len(r); i++ {
		fmt.Printf("%c ", r[i]) // 利用分片函数，避免中文乱码
	}
	fmt.Println("\n-------------------------\n", r)
	fmt.Println(strings.Contains("javaandgolang", "go"))              // 查找子串是否在指定的字符串中
	fmt.Println(strings.Count("javaandgolang", "a"))                  //统计一个字符串有几个指定的子串
	fmt.Println(strings.EqualFold("go", "Go"))                        //不区分大小写的字符串比较
	fmt.Println("go" == "Go")                                         //区分大小写的字符串比较
	fmt.Println(strings.Index("javaandgolang", "a"))                  //返回子串在字符串第一次出现的索引值，如果没有返回-1
	fmt.Println(strings.Replace("goandjavagogo", "go", "golang", -1)) //n可以指定你希望替换几个,如果n=-1表示全部替换，替换两个n就是2
	fmt.Println(strings.Split("go-python-java", "-"))                 //按照指定的某个字符，为分割标识，将一个学符串拆分成字符串数组
	fmt.Println(strings.ToLower("Go"))                                //将字符串的字母进行大小写的转换
	fmt.Println(strings.TrimSpace("     go and java    "))            //将字符串左右两边的空格去掉
	fmt.Println(strings.Trim("~golang~ ", " ~"))                      //将字符串左右两边指定的字符去掉
	fmt.Println(strings.TrimLeft("~golang~", "~"))
	fmt.Println(strings.TrimRight("~golang~", "~"))
	fmt.Println(strings.HasPrefix("http://java.sun.com/jsp/jstl/fmt", "http")) // 判断字符串是否以指定的字符串开头
	fmt.Println(strings.HasSuffix("demo.png", ".png"))                         // 判断字符串是否以指定的字符串结束
}
